<template>
    <a-layout>
        <a-layout-content :style="{ background: '#fff', padding: '24px', margin: 0, minHeight: '28px' }">
            <h3 v-if="level1.length === 0">找不到相关文档！！</h3>
            <a-row>
                <a-col :span="6">
                    <a-tree v-if="level1.length > 0" :tree-data="level1" @select="onSelect"
                        :replaceFields="{ title: 'name', key: 'id', value: 'id' }" :defaultExpandAll="true"
                        :defaultSelectedKeys="defaultSelectedKeys"></a-tree>
                </a-col>
                <a-col span="18">
                    <div>
                        <h2>{{ doc.name }}</h2>
                        <div>
                            <span>阅读数：{{ doc.viewCount }}</span> &nbsp;&nbsp;
                            <span>点赞数：{{ doc.voteCount }}</span>
                        </div>
                        <a-divider style="height: 2px; background-color: #9999cc;"></a-divider>
                    </div>
                    <div class="wangeditor" :innerHTML="html"></div>
                    <div class="vote-div">
                        <a-button type="primary" shape="round" :size="'large'" @click="vote" style="height: 55px">
                            <template #icon>
                                <LikeOutlined />&nbsp;点赞：{{ doc.voteCount }}
                            </template>
                        </a-button>
                    </div>
                </a-col>
            </a-row>
        </a-layout-content>
    </a-layout>
</template>

<script setup lang="ts">

import { Tool } from '@/utils/tool';
import axios from 'axios';
import { onMounted, ref } from 'vue';
import { useRoute } from 'vue-router';
import { message } from 'ant-design-vue';
import { LikeOutlined } from '@ant-design/icons-vue';

onMounted(() => {
    handleQuery();
});


const route = useRoute();
const docs = ref();
const html = ref();
const defaultSelectedKeys = ref();
defaultSelectedKeys.value = [];

//当前选中的文档信息
const doc = ref();
doc.value = {};

const level1 = ref();//一级树文档
level1.value = [];

//查询
const handleQuery = () => {
    console.log(route.query)
    axios.get("/doc/all/" + route.query.ebookId).then((resp) => {
        const data = resp.data;
        console.log(data.content)
        if (data.success) {
            docs.value = data.content;
            level1.value = [];
            level1.value = Tool.array2Tree(docs.value, 0);

            if (Tool.isNotEmpty(level1.value)) {
                defaultSelectedKeys.value = [level1.value[0].id];
                handleQueryContent(level1.value[0].id);

                //初始化文档信息
                doc.value = level1.value[0];
            }
        } else {
            message.error(data.message);
        }
    })
}

const handleQueryContent = (id: number) => {
    axios.get("/content/findContent/"+id).then((resp) => {
        const data = resp.data
        if (data.success) {
            html.value = data.content;
        } else {
            message.error(data.message)
        }
    })
}

const onSelect = (selectKeys: any, info: any) => {
    console.log('selected', selectKeys, info);
    if (Tool.isNotEmpty(selectKeys)) {
        //选中某个节点时，加载该节点的文档信息
        doc.value = info.selectedNodes[0];
        //加载内容
        handleQueryContent(selectKeys[0]);
    }
}


function vote() {
    axios.get("/doc/vote/"+doc.value.id)
    .then((resp)=>{
        const data = resp.data;
        if (data.success) {
            doc.value.voteCount++;
        }
        else {
            message.error(data.message);
        }
    });
}

</script>

<style>
/* wangeditor默认样式, 参照: http://www.wangeditor.com/doc/pages/02-%E5%86%85%E5%AE%B9%E5%A4%84%E7%90%86/03-%E8%8E%B7%E5%8F%96html.html */
/* table 样式 */
.wangeditor table {
    border-top: 1px solid #ccc;
    border-left: 1px solid #ccc;
}

.wangeditor table td,
.wangeditor table th {
    border-bottom: 1px solid #ccc;
    border-right: 1px solid #ccc;
    padding: 3px 5px;
}

.wangeditor table th {
    border-bottom: 2px solid #ccc;
    text-align: center;
}

/* blockquote 样式 */
.wangeditor blockquote {
    display: block;
    border-left: 8px solid #d0e5f2;
    padding: 5px 10px;
    margin: 10px 0;
    line-height: 1.4;
    font-size: 100%;
    background-color: #f1f1f1;
}

/* code 样式 */
.wangeditor code {
    display: inline-block;
    *display: inline;
    *zoom: 1;
    background-color: #f1f1f1;
    border-radius: 3px;
    padding: 3px 5px;
    margin: 0 3px;
}

.wangeditor pre code {
    display: block;
}

/* ul ol 样式 */
.wangeditor ul,
ol {
    margin: 10px 0 10px 20px;
}

/* 和antdv p冲突，覆盖掉 */
.wangeditor blockquote p {
    font-family: "YouYuan";
    margin: 20px 10px !important;
    font-size: 16px !important;
    font-weight: 600;
}

.vote-div {
    padding: 15px;
    text-align: center;
}

/* 图片自适应 */
.wangeditor img {
    max-width: 100%;
    height: auto;
}

/* 视频自适应 */
.wangeditor iframe {
    width: 100%;
    height: 400px;
}
</style>